/*
 * Project: jcerticles
 * Copyright(c) 2011 jcerticles
 * All rights reserved.
 *
 * $Revision $, last modified $Date $ by $Author $
 */
package com.quintilis31.home.core.content;

import java.util.List;

import com.quintilis31.home.common.repository.content.Content;
import com.quintilis31.home.common.repository.content.ContentSearchResultsVO;
import com.quintilis31.home.common.repository.content.Question;
import com.quintilis31.home.core.content.util.ExamObject;

/**
 * TODO... Write Javadoc...
 * @author Jothi
 * @since  1.5
 */
public interface IContentServices {
	
	/**
	 * 
	 * @param searchQuery
	 * @param skipRecords
	 * @param takeRecords
	 * @return
	 */
	List < ContentSearchResultsVO > getFileSearchResultList(final String searchQuery, final int skipRecords, final int takeRecords);
	
	/**
	 * 
	 * @param technologyId
	 * @return
	 */
	Content getRandomQuestion(final long technologyId);
	
	/**
	 * 
	 * @param technologyId
	 * @param subTechnologyId
	 * @return
	 */
	List < Question > getAllQuestionsForExam(final long technologyId, final long subTechnologyId);
	
	/**
	 * 
	 * @param technologyId
	 * @param subTechnologyId
	 * @return
	 */
	ExamObject createExamObject(final long technologyId, final long subTechnologyId);
	
	/**
	 * 
	 * @param exam
	 * @param answers
	 * @param mappedQuestionId
	 * @return
	 */
	ExamObject updateExamObjectwithNextQuestion(final ExamObject exam, final List < Long > answers, final long mappedQuestionId);
	
	/**
	 * 
	 * @param exam
	 * @param mappedQuestionId
	 * @return
	 */
	ExamObject updateExamObjectForQuestionId(final ExamObject exam, final long mappedQuestionId);

}